RedPajama 开源:1.2 万亿数据集的可商用语言模型!
类 GPT-4 的基础模型正在推动人工智能的快速发展。然而,最强大的模型是商业模型,有些是封闭,有些仅部分开放。RedPajama 项目旨在创建一组领先的完全开源模型。到今天这个项目的第一步已经完成:LLaMA 训练数据集的重现,该数据集包含超过 1.2 万亿个标记。
目前,最具实力的基础模型都是通过商业 API 封闭的,这限制了研究、定制和对敏感数据的使用。如果开放社区可以弥合开放和封闭模型之间的质量差距,完全开源模型将有望消除这些限制。最近,在这方面取得了很多进展。在许多方面,人工智能正在经历其 Linux 时刻[1]。Stable Diffusion[2] 表明,开源不仅可以与 DALL-E[3] 等商业产品媲美,而且还可以通过全球社区的广泛参与带来令人难以置信的创造力。类似的运动现在已经围绕着大型语言模型展开,最近发布了半开放模型,如 LLaMA[4]、Alpaca[5]、Vicuna[6] 和 Koala[7],以及完全开源模型,如 Pythia[8]、OpenChatKit[9]、Open Assistant[10] 和 Dolly[11]。
Linux 开源:是指 Linux 操作系统的开放源代码模式。这意味着 Linux 内核以及相关的软件、工具、文档等等都是以开源许可证的形式发布,任何人都可以查看、复制、修改和重新分发它们。这使得 Linux 操作系统成为了一个由全球各地的开发者共同维护和完善的操作系统,因此它可以自由地适应各种需求和应用场景,比如桌面系统、服务器、嵌入式设备等等。
RedPajama[12] 为产生可重现的、完全开源的领先语言模型在努力。它是 Together[13]、Ontocord.ai[14]、ETH DS3Lab[15]、Stanford CRFM[16]、Hazy Research[17] 和 MILA Québec AI Institute[18] 的合作项目。RedPajama 有三个关键组成部分,目前已经发布了第一部分(预训练数据):
预训练数据,需要既具有高质量又具有广泛的覆盖范围
基础模型,它们在这些数据上进行大规模训练
指令调整数据和模型,以改进基础模型,使其可用和安全
RedPajama 基础数据集是一个完全开放的数据集,包含 1200 亿个标记,是通过按照 LLaMA 论文中描述的方法创建的。它的起点是 LLaMA(LLaMA: Open and Efficient Foundation Language Models[19]),它是领先开放的基础模型套件,原因有二:
LLaMA 是在一个非常大的(1.2 万亿个标记)数据集上训练的,该数据集经过精心筛选以确保质量。
这个拥有 70 亿参数的 LLaMA 模型经过更长时间的训练,超过了 Chincilla 最优点(Chincilla-optimal point),以确保在该模型大小下达到最佳质量。一个 70 亿参数的模型对于开放社区尤其有价值,因为它可以在各种 GPU 上运行,包括许多消费级 GPU。然而,LLaMA 和其所有衍生品(包括 Alpaca、Vicuna 和 Koala)仅可用于非商业研究目的。RedPajama 旨在创建一个完全开源的 LLaMA 复制品,可用于商业应用,并为研究提供更透明的流程。
Chincilla 最优点 (Chincilla-optimal point):在模型训练的过程中,模型的训练步骤达到了一个最佳的点,即使进一步增加训练步骤也无法显著提高模型的性能。这个点的名称来自于一种南美洲的小型啮齿动物“毛丝鼠”(也叫龙猫),因为这种动物的大小是其生存的最优点。达到此点可以有效地提高模型训练的效率和效果,同时也可以减少资源浪费。因此,深度学习研究者通常会尝试找到它,并尽可能地让模型在这个点停止训练。
基础数据集
完整的 RedPajama 1.2 万亿标记(token)数据集和一个更小、更具消耗性的随机样本可以通过 togethercomputer/RedPajama-Data-1T[20] 下载。完整的数据集在磁盘上约为 5TB,压缩后约为 3TB。
RedPajama-Data-1T 数据集包括七个数据切片:
CommonCrawl[21]:CommonCrawl 的五个转储,使用 CCNet 管道进行处理,并通过几个质量过滤器进行过滤,包括一个线性分类器,用于选择类似维基百科的页面。
C4[22]:标准的 C4 数据集
GitHub[23]:通过许可证和质量过滤的 GitHub 数据
arXiv[24]:去除模板的科学文章
Books[25]:一组开放的书籍语料库,通过内容相似性进行去重
Wikipedia[26]:除去模板的维基百科页面子集
StackExchange[27]:流行网站 StackExchange 的子集,除去模板
针对每个数据切片,RedPajama 进行了仔细的数据预处理和过滤,并调整质量过滤器,以大致匹配 Meta AI[28] 在 LLaMA 论文中报告的标记数量。
CommonCrawl | RedPajama878 billion | LLaMA*852 billion |
C4 | RedPajama175 billion | LLaMA*190 billion |
Github | RedPajama59 billion | LLaMA*100 billion |
Books | RedPajama26 billion | LLaMA*25 billion |
ArXiv | RedPajama28 billion | LLaMA*33 billion |
Wikipedia | RedPajama24 billion | LLaMA*25 billion |
StackExchange | RedPajama20 billion | LLaMA*27 billion |
Total | RedPajama1.2 trillion | LLaMA*1.25 trillion |
Meerkat 仪表板
交互式分析 RedPajama 基础数据集
与 Meerkat[29] 项目合作,RedPajama 发布了一个 Meerkat 仪表板和嵌入,用于探索语料库的 GitHub 子集。
下一步
在复制预训练数据后,下一步是训练一个强大的基础模型。作为 INCITE 计划[30]的一部分,并得到 Oak Ridge 领导计算设施(OLCF)的支持,目前正在训练一整套模型,第一个模型将在未来几周内推出。
拥有一个强大的基础模型后,开始进行指令调整。Alpaca 展示了指令调整的强大功能——仅仅 50K 高质量、多样化的指令就能大幅提高模型的能力。通过 OpenChatKit,RedPajama 收到了数十万条高质量的自然用户指令,这些指令将用于发布经过指令调整的 RedPajama 模型版本。
INCITE 计划:向来自学术界、政府实验室和工业界的研究人员开放,旨在通过在竞争的基础上向从事应对“重大挑战”的大规模计算密集型项目的研究人员授予超级计算机时间,从而加速科学发现和技术创新在科学和工程领域。
References
Linux 时刻: https://hazyresearch.stanford.edu/blog/2023-01-30-ai-linux
[2]Stable Diffusion: https://github.com/CompVis/stable-diffusion
[3]DALL-E: https://openai.com/product/dall-e-2
[4]LLaMA: https://ai.facebook.com/blog/large-language-model-llama-meta-ai
[5]Alpaca: https://crfm.stanford.edu/2023/03/13/alpaca.html
[6]Vicuna: https://vicuna.lmsys.org
[7]Koala: https://bair.berkeley.edu/blog/2023/04/03/koala
[8]Pythia: https://github.com/EleutherAI/pythia
[9]OpenChatKit: https://huggingface.co/spaces/togethercomputer/OpenChatKit
[10]Open Assistant: https://open-assistant.io
[11]Dolly: https://github.com/databrickslabs/dolly
[12]RedPajama: https://github.com/togethercomputer/RedPajama-Data
[13]Together: https://www.together.xyz
[14]Ontocord.ai: https://www.ontocord.ai
[15]ETH DS3Lab: https://ds3lab.inf.ethz.ch
[16]Stanford CRFM: https://crfm.stanford.edu
[17]Hazy Research: https://hazyresearch.stanford.edu
[18]MILA Québec AI Institute: https://mila.quebec/en
[19]LLaMA: Open and Efficient Foundation Language Models: https://arxiv.org/abs/2302.13971
[20]togethercomputer/RedPajama-Data-1T: https://huggingface.co/datasets/togethercomputer/RedPajama-Data-1T
[21]CommonCrawl: https://commoncrawl.org
[22]C4: https://huggingface.co/datasets/c4
[23]GitHub: https://github.com
[24]arXiv: https://arxiv.org
[25]Books: https://huggingface.co/datasets/the_pile_books3
[26]Wikipedia: https://huggingface.co/datasets/wikipedia
[27]StackExchange: https://archive.org/details/stackexchange
[28]Meta AI: https://www.facebook.com/MetaAI
[29]Meerkat: https://github.com/hazyresearch/meerkat
[30]INCITE 计划: https://www.alcf.anl.gov/science/incite-allocation-program